package ar.com.wholeconsulting.pacc.model;

import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
 * @version 1.0 @created 06-Dic-2011 21:12:35
 */
@Entity
@Table(name = "ENVOLVENTE")
public class Envolvente extends Elemento {

    /**
     *
     */
    private static final long serialVersionUID = 5672344248414685561L;
    private Double diametro;
    private Double longitud;
    @ManyToOne
    @JoinColumn(name = "ACERO_ID")
    private Acero acero;
    private Soldadura tipoSoldadura;
//    private String metodoAuxSoldadura;
    @Enumerated(EnumType.STRING)
    private MetodoSoldadura metodoSoldadura;
    @Enumerated(EnumType.STRING)
    protected RadiografiaSoldadura radiografia;
    protected Double eficienciaDeJunta;
    private Long tensionAdmisible;
    private Double espesorDeCalculo;
    private Double espesorNominal;
    @Transient
    private static final String ENVOLENTE="ENVOLENTE";

    public Envolvente() {
    }

    @Override
    public long calcularEspesor() {
        return 0;
    }

    @Override
    public long getDesarrollo() {
        return 0;
    }

    @Override
    public long getPeso() {
        return 0;
    }

    @Override
    public long getVolumen() {
        return 0;
    }

    @Override
    public boolean validarEspesor(long espesorMedido) {
        return false;
    }

    public Double getDiametro() {
        return this.diametro;
    }

    public void setDiametro(Double diametro) {
        this.diametro = diametro;
    }

    public Double getLongitud() {
        return this.longitud;
    }

    public void setLongitud(Double longitud) {
        this.longitud = longitud;
    }

    public Acero getAcero() {
        return this.acero;
    }

    public void setAcero(Acero acero) {
        this.acero = acero;
    }

    public Soldadura getTipoSoldadura() {
        return this.tipoSoldadura;
    }

    public void setTipoSoldadura(Soldadura tipoSoldadura) {
        this.tipoSoldadura = tipoSoldadura;
    }

//    public String getMetodoAuxSoldadura() {
//        return this.metodoAuxSoldadura;
//    }
//
//    public void setMetodoAuxSoldadura(String metodoAuxSoldadura) {
//        this.metodoAuxSoldadura = metodoAuxSoldadura;
//    }

    public MetodoSoldadura getMetodoSoldadura() {
        return this.metodoSoldadura;
    }

    public void setMetodoSoldadura(MetodoSoldadura metodoSoldaduraExterna) {
        this.metodoSoldadura = metodoSoldaduraExterna;
    }

    public Long getTensionAdmisible() {
        return this.tensionAdmisible;
    }

    public void setTensionAdmisible(Long tensionAdmisible) {
        this.tensionAdmisible = tensionAdmisible;
    }

    public Double getEspesorDeCalculo() {
        return this.espesorDeCalculo;
    }

    public void setEspesorDeCalculo(Double espesorDeCalculo) {
        this.espesorDeCalculo = espesorDeCalculo;
    }

    public Double getEspesorNominal() {
        return this.espesorNominal;
    }

    public void setEspesorNominal(Double espesorNominal) {
        this.espesorNominal = espesorNominal;
    }

//    @PrePersist
//    void saveFields() {
//        if (metodoSoldadura != null) {
//            this.metodoAuxSoldadura = this.metodoSoldadura.toString();
//        }
//    }
//
//    @PostLoad
//    void populateFiled() {
//        if (metodoAuxSoldadura != null && !metodoAuxSoldadura.isEmpty()) {
//            this.metodoSoldadura = MetodoSoldadura.fromString(this.metodoAuxSoldadura);
//        }
//    }

    public RadiografiaSoldadura getRadiografia() {
        return this.radiografia;
    }

    public void setRadiografia(RadiografiaSoldadura radiografia) {
        this.radiografia = radiografia;
    }

    public Double getEficienciaDeJunta() {
        return this.eficienciaDeJunta;
    }

    public void setEficienciaDeJunta(Double eficienciaDeJunta) {
        this.eficienciaDeJunta = eficienciaDeJunta;
    }

    @Override
    public String toString() {
        return ENVOLENTE;
    }


}
